home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / zhetd2.z / zhetd2
Text File  |  1998-10-30  |  5KB  |  199 lines

  1.  
  2.  
  3.  
  4. ZZZZHHHHEEEETTTTDDDD2222((((3333FFFF))))                                                          ZZZZHHHHEEEETTTTDDDD2222((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ZHETD2 - reduce a complex Hermitian matrix A to real symmetric
  10.      tridiagonal form T by a unitary similarity transformation
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE ZHETD2( UPLO, N, A, LDA, D, E, TAU, INFO )
  14.  
  15.          CHARACTER      UPLO
  16.  
  17.          INTEGER        INFO, LDA, N
  18.  
  19.          DOUBLE         PRECISION D( * ), E( * )
  20.  
  21.          COMPLEX*16     A( LDA, * ), TAU( * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      ZHETD2 reduces a complex Hermitian matrix A to real symmetric tridiagonal
  25.      form T by a unitary similarity transformation:  Q' * A * Q = T.
  26.  
  27.  
  28. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  29.      UPLO    (input) CHARACTER*1
  30.              Specifies whether the upper or lower triangular part of the
  31.              Hermitian matrix A is stored:
  32.              = 'U':  Upper triangular
  33.              = 'L':  Lower triangular
  34.  
  35.      N       (input) INTEGER
  36.              The order of the matrix A.  N >= 0.
  37.  
  38.      A       (input/output) COMPLEX*16 array, dimension (LDA,N)
  39.              On entry, the Hermitian matrix A.  If UPLO = 'U', the leading n-
  40.              by-n upper triangular part of A contains the upper triangular
  41.              part of the matrix A, and the strictly lower triangular part of A
  42.              is not referenced.  If UPLO = 'L', the leading n-by-n lower
  43.              triangular part of A contains the lower triangular part of the
  44.              matrix A, and the strictly upper triangular part of A is not
  45.              referenced.  On exit, if UPLO = 'U', the diagonal and first
  46.              superdiagonal of A are overwritten by the corresponding elements
  47.              of the tridiagonal matrix T, and the elements above the first
  48.              superdiagonal, with the array TAU, represent the unitary matrix Q
  49.              as a product of elementary reflectors; if UPLO = 'L', the
  50.              diagonal and first subdiagonal of A are over- written by the
  51.              corresponding elements of the tridiagonal matrix T, and the
  52.              elements below the first subdiagonal, with the array TAU,
  53.              represent the unitary matrix Q as a product of elementary
  54.              reflectors. See Further Details.  LDA     (input) INTEGER The
  55.              leading dimension of the array A.  LDA >= max(1,N).
  56.  
  57.      D       (output) DOUBLE PRECISION array, dimension (N)
  58.              The diagonal elements of the tridiagonal matrix T:  D(i) =
  59.              A(i,i).
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZZZZHHHHEEEETTTTDDDD2222((((3333FFFF))))                                                          ZZZZHHHHEEEETTTTDDDD2222((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      E       (output) DOUBLE PRECISION array, dimension (N-1)
  75.              The off-diagonal elements of the tridiagonal matrix T:  E(i) =
  76.              A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
  77.  
  78.      TAU     (output) COMPLEX*16 array, dimension (N-1)
  79.              The scalar factors of the elementary reflectors (see Further
  80.              Details).
  81.  
  82.      INFO    (output) INTEGER
  83.              = 0:  successful exit
  84.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  85.  
  86. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  87.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  88.      reflectors
  89.  
  90.         Q = H(n-1) . . . H(2) H(1).
  91.  
  92.      Each H(i) has the form
  93.  
  94.         H(i) = I - tau * v * v'
  95.  
  96.      where tau is a complex scalar, and v is a complex vector with v(i+1:n) =
  97.      0 and v(i) = 1; v(1:i-1) is stored on exit in
  98.      A(1:i-1,i+1), and tau in TAU(i).
  99.  
  100.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  101.      reflectors
  102.  
  103.         Q = H(1) H(2) . . . H(n-1).
  104.  
  105.      Each H(i) has the form
  106.  
  107.         H(i) = I - tau * v * v'
  108.  
  109.      where tau is a complex scalar, and v is a complex vector with v(1:i) = 0
  110.      and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), and tau in
  111.      TAU(i).
  112.  
  113.      The contents of A on exit are illustrated by the following examples with
  114.      n = 5:
  115.  
  116.      if UPLO = 'U':                       if UPLO = 'L':
  117.  
  118.        (  d   e   v2  v3  v4 )              (  d                  )
  119.        (      d   e   v3  v4 )              (  e   d              )
  120.        (          d   e   v4 )              (  v1  e   d          )
  121.        (              d   e  )              (  v1  v2  e   d      )
  122.        (                  d  )              (  v1  v2  v3  e   d  )
  123.  
  124.      where d and e denote diagonal and off-diagonal elements of T, and vi
  125.      denotes an element of the vector defining H(i).
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ZZZZHHHHEEEETTTTDDDD2222((((3333FFFF))))                                                          ZZZZHHHHEEEETTTTDDDD2222((((3333FFFF))))
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                                                         PPPPaaaaggggeeee 3333
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.